1. Technical Field
Embodiments of the present disclosure relate generally to end device in networks, and more specifically to techniques for reducing volatile memory requirement in an end device designed to operate with multiple versions of internet protocol.
2. Related Art
As is well known in the relevant arts, Internet Protocol (IP) is a communications protocol used for transmission and reception of data in the form of packets between devices connected by networks. According to IP, each data packet contains a header and a payload portion. The payload portion contains the actual data to be transmitted, while the header contains information for delivery of the packet from a source system to a destination system. The header includes a sender address and a destination address. Delivery of a data packet according to IP is based on the destination address. Typically, routers along a network path between a sender node and a destination node store routing tables. On receipt of an IP packet, a router may examine the destination address, look-up a routing table stored in memory and forward the packet on a corresponding path indicated by the routing table. Devices that are the source and destinations of packets are termed end devices, and are identified by their respective IP addresses. Thus, the header of an IP packet includes the IP address of the source/sender end device as well the IP address of the destination end device.
Multiple versions of IP may concurrently be in use. For example, currently networks designed according to internet protocol version 4 (IPv4) coexist with networks designed according to internet protocol version 6 (IPv6). Consequently, end devices may be designed such that they can operate with multiple versions of internet protocol (IPv6 and IPv4 in the above example).
The requirement to operate with multiple IP versions may present some challenges at least in some environments. For example, IPv4 uses 32-bit addressing to specify source and destination addresses, while IPv6 uses 128-bit addressing to specify source and destination addresses. In addition other differences, such as buffer management, protocols with higher layers such as transport layer, may also exist. In some prior end devices, to accommodate both IPv6 and IPv4 capabilities, both IPv6 and IPv4 components (instructions and/or data components that enable communication consistent with IPv6 and IPv4 protocols respectively) are copied from a non-volatile memory to a volatile memory for execution (of the corresponding component—IPv6 or IPv4). Due to such use of the volatile memory, a volatile memory of a correspondingly large size may be required.
As is well-known volatile memory refers to memory that requires sustained power application to retain stored data, static random access memory (SRAM) being an example. It may be desirable to reduce the size of volatile memory used in end devices designed to operate with multiple versions of internet protocol.
The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.